package grape.attend.service.user.po;

import grape.common.service.common.IDictItem;
import grape.common.service.common.dictenums.IBaseDictEnum;
import grape.common.service.po.NormalBasePo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户加班表
 * </p>
 *
 * @author yangwei
 * @since 2020-05-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("attend_user_overtime")
public class UserOvertime extends NormalBasePo<UserOvertime> {

    private static final long serialVersionUID = 1L;

    /**
     * 加班审批状态字典
     */
    public enum DictApproveStatus implements IDictItem {
        user_overtime_approve_status_unsubmit, // 未提交
        user_overtime_approve_status_inapproval, // 审批中
        user_overtime_approve_status_pass, // 审批通过
        user_overtime_approve_status_unpass,
        ; // 未审批通过

        @Override
        public String itemCode() {
            return this.name();
        }}

    /**
     * 用户id
     */
    private String userId;

    /**
     * 班次日期
     */
    private Date classeDate;

    /**
     * 用户打卡id
     */
    private String userClockId;

    /**
     * 开始时间
     */
    private Long startAt;

    /**
     * 结束时间
     */
    private Long endAt;

    /**
     * 扣除休息时间分钟数
     */
    private Integer deductRestTime;


    /**
     * 实际加班时长分钟数
     */
    private Integer overtime;

    /**
     * 是否有效
     */
    private Boolean isEffect;

    /**
     * 是否需要审批
     */
    private Boolean isApprove;
    /**
     * 审批状态字典id
     */
    private String approveStatusDictId;
    /**
     * 备注
     */
    private String remark;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}
